perm filename INIT.SAI[PNT,HE]6 blob sn#367363 filedate 1978-07-13 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	ENTRY
C00009 ENDMK
C⊗;
ENTRY;
BEGIN
DEFINE $INIT=TRUE;

REQUIRE "HEADER.SAI" SOURCE_FILE;

DEFINE #USERS=12;
PRESET_WITH "TOB","ARG","MSM"," HN","JKS","ROD","RDG","EPP"," NH","HMP"," ES","RDO";
STRING ARRAY USERID[1:#USERS];
PRESET_WITH "Tom","Ron","Shahid","Hamid","Ken","Rod", "Russell","Enrico","Norm","Henri","Gene","Dan";
STRING ARRAY USERNAME[1:#USERS];

PROCEDURE INIBRK;
BEGIN
STRING BTABLE;
BTABLE←"⊂⊃={}.,;[]()+-*/←↑↓→?α$|⊗"&LF&CR&TAB&FF&SP&dquote;
SETBREAK ($CRTAB ←GETBREAK,CR,LF&FF,"INSK");
SETBREAK ($FFTAB ←GETBREAK,FF,NULL,"INSK");
SETBREAK ($RETAB ←GETBREAK,BTABLE,NULL,"INR");		! used by gtoken;
SETBREAK ($SKTAB ←GETBREAK,BTABLE,NULL,"INS");
SETBREAK ($SPCTAB←GETBREAK,TAB&SP,NULL, "XNR");
SETBREAK ($ALFTAB←GETBREAK,NULL,NULL,"XRN");
SETBREAK ($NUMTAB←GETBREAK,"@+-0123456789",NULL,"XNR");	! as table 10;
SETBREAK ($DSHTAB←GETBREAK,"_",NULL,"INS");		! used by COPY/MERGE;
SETBREAK ($ERRTAB←GETBREAK,BTABLE,SP&CR,"IN");		! used while recovering;
SETBREAK ($BSKTAB←GETBREAK,NULL,SP,"IN");		! used to eliminate blanks;
SETBREAK ($DPYTAB←GETBREAK,CR,CRLF,"INS");		! used for display;
$BLANK←"                                        ";
SETFORMAT(0,3);
END;

REQUIRE INIBRK INITIALIZATION ;


PROCEDURE GETUSERNAME;
BEGIN
	INTEGER I; STRING ID;
	ID←CVXSTR(CALL(0,"DSKPPN"));	! look at alias;
	ID←ID[4 TO 6];
	FOR I←1 STEP 1 UNTIL #USERS
		DO IF EQU(ID,USERID[I]) THEN DONE;
	IF I>#USERS THEN
		BEGIN
		ID←CVXSTR(CALL(0,"GETPPN"));	! look at login ppn;
		ID←ID[4 TO 6];
		FOR I←1 STEP 1 UNTIL #USERS
			DO IF EQU(ID,USERID[I]) THEN DONE;
		END;
	IF I>#USERS THEN BEGIN OUTSTR("I haven't met you before, what is your name?  ");
			$USERNAME←INCHWL;
			END
		ELSE $USERNAME←USERNAME[I];
END;
REQUIRE GETUSERNAME INITIALIZATION;


INTERNAL PROCEDURE INIT;
BEGIN

	! some initializations;
	
	INTEGER I;		
	FOR I←#MIN STEP 1 UNTIL #MAX DO
	    $ENTRY[I]←(I-#MIN)*#LTYPE;
	STOKEN←FALSE;

	$ALLOW←0;
	$TTYFL←NULL;
	$TOTFL←0;
	$ALFL←"DECLAR.AL";		! default name for input/output file;
	$EPS←0.001;

	HANDB←ENSYM("BHAND",#SC,S_BHAND←MK_REC(#SC));
	HANDY←ENSYM("YHAND",#SC,S_YHAND←MK_REC(#SC));

	SCALAR:VALUE[SYMBOL:OBJECT[INCHES←ENSYM("INCHES",#SC,MK_REC(#SC))]]←1;
	SCALAR:VALUE[SYMBOL:OBJECT[INCH←ENSYM("INCH",#SC,MK_REC(#SC))]]←1;
	SCALAR:VALUE[SYMBOL:OBJECT[DEG←ENSYM("DEG",#SC,MK_REC(#SC))]]←1;
	SCALAR:VALUE[SYMBOL:OBJECT[DEGREE←ENSYM("DEGREE",#SC,MK_REC(#SC))]]←1;
	SCALAR:VALUE[SYMBOL:OBJECT[DEGRES←ENSYM("DEGREES",#SC,MK_REC(#SC))]]←1;


	VECTOR:XC[SYMBOL:OBJECT[XHAT←ENSYM("XHAT",#VT,V_XHAT←MK_REC(#VT))]]←1;
	VECTOR:YC[SYMBOL:OBJECT[YHAT←ENSYM("YHAT",#VT,V_YHAT←MK_REC(#VT))]]←1;
	VECTOR:ZC[SYMBOL:OBJECT[ZHAT←ENSYM("ZHAT",#VT,V_ZHAT←MK_REC(#VT))]]←1;
	NILVECT←ENSYM("NILVECT",#VT,V_NILVECT←MK_REC(#VT));

	WORLD←ENSYM("STATION",#FR,F_WRLD←MK_REC(#FR));
	FRAME:PNAME[F_WRLD]←"STATION";
	BARM←ENSYM("BARM",#FR,F_BARM←MK_REC(#FR));
	FRAME:PNAME[F_BARM]←"BARM";
	YARM←ENSYM("YARM",#FR,F_YARM←MK_REC(#FR));
	FRAME:PNAME[F_YARM]←"YARM";
 	BPARK←ENSYM("BPARK",#FR,F_BPARK←MK_REC(#FR));
	FRAME:PNAME[F_BPARK]←"BPARK";
 	YPARK←ENSYM("YPARK",#FR,F_YPARK←MK_REC(#FR));
	FRAME:PNAME[F_YPARK]←"YPARK";
 	BGRASP←ENSYM("BGRASP",#FR,F_BGRASP←MK_REC(#FR));
	FRAME:PNAME[F_BGRASP]←"BGRASP";
 	POINTER←ENSYM("POINTER",#FR,F_POINTER←MK_REC(#FR));
	FRAME:PNAME[F_POINTER]←"POINTER";

	NILROTN←ENSYM("NILROTN",#RT,R_NILROTN←MK_REC(#RT));
	NILTRANS←ENSYM("NILTRANS",#TR,T_NILTRANS←MK_REC(#TR));

ARRTRAN(FRAME:XF[F_BPARK],TRANS:XF[DOTREXP(0,180,0,43.53125,56.855,9.95875)]);
ARRTRAN(FRAME:XF[F_YPARK],TRANS:XF[DOTREXP(0,180,0,40,14,9)]);
ARRTRAN(FRAME:XF[F_BGRASP],TRANS:XF[DOTREXP(-180,180,0,0,0,0)]);
ARRTRAN(FRAME:XF[F_POINTER],TRANS:XF[DOTREXP(-.417,13.2,-5.173,.0121,.119,3.75)]);

AFX_NODE(F_BARM,F_WRLD,#NRGLK);
AFX_NODE(F_YARM,F_WRLD,#NRGLK);
AFX_NODE(F_BGRASP,F_BARM,#RGDLK);
AFX_NODE(F_POINTER,F_BARM,#RGDLK);
DEVICE ← TTY_X;
TTYUP(TRUE);				! conversion to upper cases;
F_ARM←F_BARM;
END;

REQUIRE INIT INITIALIZATION;


END;